package org.gjy.m8.bucket;

/**
 * RateLimiter – 所有限流实现的统一入口。
 *
 * @param <K> 用来区分不同资源/租户的键（如 userId、apiPath 等）
 * @author gjy
 * @version 1.0
 * @since 2025-10-13 17:52:14
 */
public interface RateLimiter<K> {

    /**
     * 尝试获取一次许可。
     *
     * @param key   业务唯一键（比如 "user:123"、"api:/order/create"）
     * @return true  → 通过（本次请求允许）<br>
     *         false → 被限流（本次请求拒绝）
     */
    boolean tryAcquire(K key);

}
